package tests;

import java.util.ArrayList;

import junit.framework.TestCase;
import modelo.Producto;
import ofertas.*;
import org.junit.Test;
import persistencia.SerializarOfertas;

public class ReglaPuntosPorVolumenFactoryTest extends TestCase {

	@Test
	public void testRecuperarUnaReglaDePuntos() {
		
		Producto producto1 = new Producto("nombre1", "marca1", "categoria1", 10);
		Producto producto2 = new Producto("nombre2", "marca2", "categoria2", 20);
		ReglaPuntosPorVolumen regla = new ReglaPuntosPorVolumen();
		regla.addProducto(producto1, 1, 0);
		regla.addProducto(producto2, 1, 1);

		ArrayList<ReglaPuntosPorVolumen> reglas = new ArrayList<ReglaPuntosPorVolumen>();
		reglas.add(regla);

		SerializarOfertas serializador = new SerializarOfertas(
				"reglasPuntos_volumen_test.csv");
		serializador.serializarReglaPuntosPorVolumen(reglas, false);

		ReglaPuntosPorVolumenFactory factory = new ReglaPuntosPorVolumenFactory();
		factory.setNombreArchivo("reglasPuntos_volumen_test.csv");

		factory.cargarReglas();

		ArrayList<ReglaPuntos> reglasCreadas = factory.getReglas();

		boolean comparacion = true;
		for (int i = 0; i < reglasCreadas.size(); ++i) {
			if (!reglas.get(i)
					.equals((ReglaPuntosPorVolumen) reglasCreadas.get(i))) {
				comparacion = false;
				break;
			}
		}
		assertTrue(comparacion);
	}

}
